- 
                Notifications
    You must be signed in to change notification settings 
- Fork 2.7k
          Add cargo update --breaking
          #13979
        
          New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
          
     Merged
      
      
    
                
     Merged
            
            
  
    Add cargo update --breaking
  
  #13979
              
            Conversation
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
    | r? epage | 
              
                    epage
  
              
              reviewed
              
                  
                    May 29, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    May 29, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    May 29, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    May 29, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    May 29, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    May 29, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    May 29, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    May 29, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    May 29, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    May 29, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    May 29, 2024 
                  
              
              
            
            
| When this is ready for review, what I expect to see for the commits 
 | 
              
                    epage
  
              
              reviewed
              
                  
                    May 29, 2024 
                  
              
              
            
            
| ☔ The latest upstream changes (presumably #13980) made this pull request unmergeable. Please resolve the merge conflicts. | 
cargo update --incompatiblecargo update --breaking
      
              
                    epage
  
              
              reviewed
              
                  
                    Jun 5, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    Jun 5, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    Jun 5, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    Jun 5, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    Jun 5, 2024 
                  
              
              
            
            
              
                    epage
  
              
              reviewed
              
                  
                    Jun 5, 2024 
                  
              
              
            
            
3a6142f    to
    61202d5      
    Compare
  
    | Thanks for all of the work you put into this! @bors r+ | 
      
        
      
      
  
    11 tasks
  
| ☀️ Test successful - checks-actions | 
    
  bors 
      added a commit
        to rust-lang-ci/rust
      that referenced
      this pull request
    
      Jun 8, 2024 
    
    
      
  
    
      
    
  
Update cargo 8 commits in 34a6a87d8a2330d8c9d578f927489689328a652d..b1feb75d062444e2cee8b3d2aaa95309d65e9ccd 2024-06-04 15:31:01 +0000 to 2024-06-07 20:16:17 +0000 - Keep lints updated (rust-lang/cargo#14030) - test(lints): Ensure unused optional dep fires for shadowed dep (rust-lang/cargo#14028) - Add `cargo update --breaking` (rust-lang/cargo#13979) - Add tooling to document lints (rust-lang/cargo#14025) - Rename --out-dir to --artifact-dir (rust-lang/cargo#13809) - fix(lints): Add unknown_lints to lints list (rust-lang/cargo#14024) - docs(contrib): Suggest atomic commits with separate test commits (rust-lang/cargo#14014) - test(semver): track the behavior of `--precise <prerelease>` (rust-lang/cargo#14013) r? ghost
    
  epage 
      added a commit
        to epage/cargo
      that referenced
      this pull request
    
      Jun 11, 2024 
    
    
      
  
    
      
    
  
This is a follow up to rust-lang#13979 to try to clarify things in prep for users testing this.
    
  epage 
      added a commit
        to epage/cargo
      that referenced
      this pull request
    
      Jun 12, 2024 
    
    
      
  
    
      
    
  
This is a follow up to rust-lang#13979 to try to clarify things in prep for users testing this.
    
  bors 
      added a commit
      that referenced
      this pull request
    
      Jun 12, 2024 
    
    
      
  
    
      
    
  
docs: Iterate on --breaking docs This is a follow up to #13979 to try to clarify things in prep for users testing this.
    
  flip1995 
      pushed a commit
        to flip1995/rust-clippy
      that referenced
      this pull request
    
      Jun 28, 2024 
    
    
      
  
    
      
    
  
Update cargo 8 commits in 34a6a87d8a2330d8c9d578f927489689328a652d..b1feb75d062444e2cee8b3d2aaa95309d65e9ccd 2024-06-04 15:31:01 +0000 to 2024-06-07 20:16:17 +0000 - Keep lints updated (rust-lang/cargo#14030) - test(lints): Ensure unused optional dep fires for shadowed dep (rust-lang/cargo#14028) - Add `cargo update --breaking` (rust-lang/cargo#13979) - Add tooling to document lints (rust-lang/cargo#14025) - Rename --out-dir to --artifact-dir (rust-lang/cargo#13809) - fix(lints): Add unknown_lints to lints list (rust-lang/cargo#14024) - docs(contrib): Suggest atomic commits with separate test commits (rust-lang/cargo#14014) - test(semver): track the behavior of `--precise <prerelease>` (rust-lang/cargo#14013) r? ghost
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
      Labels
      
    A-cli
  Area: Command-line interface, option parsing, etc. 
  
    A-dependency-resolution
  Area: dependency resolution and the resolver 
  
    A-documenting-cargo-itself
  Area: Cargo's documentation 
  
    A-infrastructure
  Area: infrastructure around the cargo repo, ci, releases, etc. 
  
    A-manifest
  Area: Cargo.toml issues 
  
    A-testing-cargo-itself
  Area: cargo's tests 
  
    Command-add
  
    Command-clean
  
    Command-fetch
  
    Command-fix
  
    Command-install
  
    Command-metadata
  
    Command-new
  
    Command-package
  
    Command-remove
  
    Command-tree
  
    Command-update
  
    Command-vendor
  
    S-waiting-on-bors
  Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Related to #12425.
There are two kinds of manifest mutations here. In
upgrade_manifestswe have to mutatecargo::core::manifest::Manifestso thatresolve_wsdoes what it needs to do, and outputs a correct lock file. Then, inwrite_manifest_upgradeswe mutatecargo::util::toml_mut::manifest::Manifest, because that is how we can preserve the existing formatting in the manifest files on disk.Some of the code here is copied from
cargo-edit.Comparison with
cargo upgradeRunning on the Cargo source itself gives the following:
In both cases we see an upgrade of
itertoolsto^0.13.0andpulldown-cmarkto^0.11.0.The diff to the manifest (when it isn't a dry run) is as follows:
TODO
--incompatible, we also need to letupdate_lockfileuseupgradesin order to only update the incompatible dependencies.--package, etc.cargo upgrade.